package dao

import "adam2/internal/model"

type Real9QuantStockFilterDao interface {

	// 清空数组
	TruncateTable()

	// 从stock_transaction_data_all表中向real9_q_stock_filter表中插入记录，按照total_market_value升序排列，包括正在持有的股票
	InsertIntoReal9QuantStockFilterFromStockTransactionData(transactionDate string)

	// 删除总市值不满足要求的股票
	DeleteByTotalMarketValueBottomLimit(statistics string, marketValueMainBoardBottomLimit float64, marketValueCyBBoardBottomLimit float64)

	// 只保留总市值最小的(10*账号数量+4)只股票
	RetainMinTotalMarketValue(maxHoldStockNumber int)

	// 查询全部记录
	FindAll() model.Real9QuantStockFilterArray

	// 根据code删除记录
	DeleteByStockCode(stockCode string)

	// 删除开盘价不满足要求的股票
	DeleteOpenPriceBottomLimit(transactionDate string, openPriceBottomLimit float64)

	// 查询real9_q_stock_filter表的记录，不包括real9_q_stock_transact_record表中还没有卖出的记录，不包括当天是最后一个交易日的股票
	FindByStockCodeNotInAndReal9QuantStockTransactionRecordAndDateNull(transactionDate string) model.Real9QuantStockFilterArray

	// 查询记录总数
	Count() int

	// 插入记录
	Insert(accountName string, stockCode string, date string, openPrice float64, buyOrSellAmount int, registrationFee float64, commission float64)
}
